Ever since web was introduced into the computer network, more and more applications are developed in this form. Generally, after a web-based application is deployed and before it runs on line, a user must manually setup the application by processing specific flows or feeding necessary data into it. This may involve a number of complex operations. For many huge applications, even a single module may include thousands of such setup steps and need to be processed precisely. Moreover, many instances that need to be configured are deployed with the same application but in different computers. Apparently, the complexity and the workload of the tasks may ultimately lead to users' frustration because manually doing this is boring, time costing and easily failures causing.
The limitations and disadvantages of conventional and traditional approaches will become apparent workarounds because none of them really focus on automatic setup but on functional testing or performance testing.
The solutions on the purpose of functional testing usually record user's actions within the web browser and then trigger these actions with parameterized data within the browser during playback. In this way, this method could be a workaround to feed data into web application, but apparently, it has great dependency on graphic user interface (GUI) environment or even web browsers and moreover, performance is always a significant issue.
The solutions on the purpose of performance testing record the HTTP(s) request data on the protocol level and post the data to the server to execute playback. As workarounds to implement automatic setup, this kind of solutions modifies the recorded data with the data that user wants to set up with. But the issue they are now facing is that many web applications are using dynamic unique data to identify sessions or transactions in the application level aside from the protocol level. During a whole session or transaction, the dynamic data encapsulated in HTML pages and HTTP(s) requests alternates between the server and the client, wherein the dynamic data of the client should be consistent with that of the sever. Since the dynamic data recorded last time during recording is definitely invalid for the next time, solutions have to use some additional specific dynamic data synchronization mechanism for a specific application to replace the dynamic data because different web applications have different ways to generate and encapsulate dynamic data in HTML pages. It is always desirable to have a system with a universal method to implement automatic setup in any web-based applications.